package com.household.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.household.domain.ResponseResult;
import com.household.domain.entity.Orders;
import com.household.domain.enums.OrderStatusEnum;
import com.household.domain.enums.RoleEnum;
import com.household.domain.vo.AdminOrderVO;
import com.household.domain.vo.BootstrapTableVO;
import com.household.domain.vo.OrderDescVO;

import java.util.Map;

/**
 * Created By wanzhen
 * 2023. 2023/4/4. 20:08
 */
public interface OrdersService extends IService<Orders> {
    Map<String,Integer> getAdminDashboardData();
    /**
     * 检查是否有未完成的订单
     * @param roleEnum ROLE_USER: order表userId；ROLE_COURIER:order表courierId
     */
    boolean isExistUnfinishedOrder(String userId);

    boolean isExist(String orderId);
    /**
     * 分页查询订单
     * 适用：管理员端
     */
    BootstrapTableVO<AdminOrderVO> pageAdminOrderVO(Page<AdminOrderVO> page, String sql, int isDelete);

    /**
     * 批量恢复订单
     * @param userId 为null时，不校验订单所属
     */
    ResponseResult batchRollback(String[] ids, String userId);

    /**
     * 手动删除
     * @author jitwxs
     * @date 2019/4/25 0:13
     */
    boolean manualDelete(String orderId, int hasDelete, int deleteType);
    /**
     * 是否是某位用户的订单
     */
    boolean isUserOrder(String orderId, String userId);

    /**
     * 系统批量删除订单，无需校验userId
     * 订单状态：除【派送中】外所有状态
     */
    ResponseResult batchRemoveOrder(String[] ids);
    /**
     * 批量删除订单
     */
    ResponseResult batchDeleteOrder(String[] ids, String userId);
    /**
     * 批量撤销订单
     */
    ResponseResult batchCancelOrder(String[] ids, String userId);





}
